订阅的Feed越来越多,即使基于简单的配置缓存有时候也经常速度跟不上:网站经常出现只剩下右边半边的情况,就是由于缓存期间抓取远程的网页超时导致的。其实Planet和Gregarius一样,都是在用户访问的时候避免对FEED的动态更新。Planet和Gregarius都是使用后台脚本定时同步FEED,在MagpieRSS外面包了一层存储(数据库),我直接在MagpieRSS中增加了一个只读本地缓存模式。修改了一下MagpieRSS的缓存逻辑:加入一个MAGPIE_LOAD_CACHE_ONLY 模式,只从本地的缓存中取feed,避免更新期间向远程发送FEED同步请求。
然后在lilina前台这样调用即可:
// cache expire in 3 hours
define('MAGPIE_CACHE_AGE', 60 * 60 * 3);
// load cache only
define('MAGPIE_LOAD_CACHE_ONLY', true);
require_once('./lib.php');
完整的Patch:如下
Index: rss_cache.inc
===================================================================
RCS file: /cvsroot/magpierss/magpierss/rss_cache.inc,v
retrieving revision 1.10
diff -r1.10 rss_cache.inc
113a114,116
> global $MAGPIE_LOAD_CACHE_ONLY;
> global $MAGPIE_DEBUG;
>
117a121,126
> if ( MAGPIE_LOAD_CACHE_ONLY ) {
> if ( MAGPIE_DEBUG ) {
> $this->error("MagpieRSS [debug] $debugmsg MAGPIE_LOAD_CACHE_ONLY on", $MAGPIE_LOAD_CACHE_ONLY);
> }
> return 'HIT';
> }
Index: rss_fetch.inc
===================================================================
RCS file: /cvsroot/magpierss/magpierss/rss_fetch.inc,v
retrieving revision 1.21
diff -r1.21 rss_fetch.inc
85d84
<
393a393,397
>
> // use cache without fetch remote
> if ( !defined('MAGPIE_LOAD_CACHE_ONLY')) {
> define('MAGPIE_LOAD_CACHE_ONLY', false);
> }
2007-02-27 更新:
复制我改写过的rss_cache.inc和rss_fetch.inc这2个文件到Lilina的inc相应目录下,然后在Lilina展现的时候定义: define('MAGPIE_LOAD_CACHE_ONLY', true); lilina(实际上是调用的MagpieRSS库)就不读取远程RSS,直接读本地cache了。
2008-02-09 更新:
将前台聚合脚本重新打包并提供下载:252k:
缺省的编辑入口: lilina/edit.php
缺省配置文件的用户名密码为: username/password
请参考index.php中的注释设置使用后台脚本crontab更新;
参考:
lilina的安装和配置
版权声明:可以转载,转载时请务必以超链接形式标明文章 lilina(MagpieRSS)的缓存加速II:加入MAGPIE_LOAD_CACHE_ONLY模式 的原始出处和作者信息及本版权声明。
http://www.chedong.com/blog/archives/001066.html
Comments
请问这个怎么用?
由: chen 发表于 2005年11月17日 晚上09时25分
这个patch直接用在0.7版上就可以了?
由: sID 发表于 2005年11月20日 下午06时46分
难用啊~`对虚拟主机支持也不好~
由: cero 发表于 2005年11月25日 晚上10时50分
chedong能不能提供一个完整patch后的lilina到我email啊?谢谢你了.我没有unix环境.patch这个功能用不上啊.手改眼睛花了.谢谢你了.发到nickzhuo AT 126.com
由: sID 发表于 2005年12月30日 下午12时07分
hi,你2007年2月更新的两个文件的链接,第一个是错的,估计是笔误吧,呵呵。
由: maomy 发表于 2008年02月09日 夜间01时53分